變數只能從建立它的區域內部使用。這稱為作用範圍。
在程式設計中,名稱的作用範圍定義了程式的區域,您可以在其中明確存取該名稱,該名稱可以識別變數、常數、函數、類別或任何其他物件。在大部分情況下,您只能在自己的作用範圍內或從內部或巢狀範圍存取名稱。
幾乎所有的程式語言都使用作用範圍的概念來避免名稱衝突和不可預測的行為。大多數情況下,您會區分兩種主要類型的範圍:
全域範圍:此範圍中的名稱可供所有程式碼使用。
局部範圍:此範圍中的名稱僅對範圍內的程式碼可用或可見。
作用範圍的出現是因為像 BASIC 這樣的早期程式語言只有全域名稱。使用這種類型的名稱,程式的任何部分都可以隨時修改任何變數,使得大型程式難以維護和調試。若要使用全域名稱,您必須牢記所有程式碼,以便隨時知道給定名稱所指的值。這是沒有作用域且僅依賴全域名稱的主要副作用。
現代語言,如 Python,使用變數作用域的概念來避免此類問題。當您使用實作範圍的語言時,您將無法從所有位置存取程式中的所有名稱。相反地,您存取名稱的能力取決於其範圍。
程式中的名稱具有定義它們的程式碼區塊的作用域。如果您可以從程式碼中的某個位置存取某個名稱,則該名稱在作用域內。如果無法存取該名稱,則該名稱超出作用域。